#include<iostream>
#include<vector>
#include<cstdio>
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>

int main()
{
    pid_t id = fork();
    if (id == 0)
    {
        //子进程
        while (true)
        {
            printf("我是子进程， pid: %d\n", getpid());
            sleep(1);
        }
        exit(0);    
    }

    //父进程
    while(true)
    {
        sleep(1);
        pid_t rid = waitpid(id, nullptr, WNOHANG);
        if (rid > 0)
        {
            printf("等待子进程 %d 成功\n", rid);
            break;
        }
        else if (rid < 0)
        {
            printf("等待子进程失败\n");
            break;
        }
        else 
        {
            printf("子进程尚未退出\n");
        }
    }

    return 0;
}
